package com.hngtrust.iir.company.controller.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * 查询企业图谱返回的VO类
 * @author Chentianyong
 * @date 2021/4/22 14:36
 */
@ApiModel(description = "查询企业图谱返回的VO类")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ListMapByCompanyRespVo {

    //企业名称
    @ApiModelProperty(value = "企业名称")
    private String name;
    
    //1个人 2公司
    @ApiModelProperty(value = "1个人 2公司")
    private String type;
    
    //id
    @ApiModelProperty(value = "id")
    private String nameId;
    
    //是否存在下一级 0:存在 1:不存在
    @ApiModelProperty(value = "是否存在下一级 0:存在 1:不存在")
    private String existnextLevel;
    
    //统一社会信用代码
    @ApiModelProperty(value = "统一社会信用代码")
    private String creditCode;
    
    //法定代表人
    @ApiModelProperty(value = "法定代表人")
    private String legalRepresentative;
    
    //注册资本
    @ApiModelProperty(value = "注册资本")
    private String registerCapital;
    
    //成立日期
    @ApiModelProperty(value = "成立日期")
    private Date establishedDate;
    
    //公司标签
    @ApiModelProperty(value = "公司标签")
    private String companyTag;
    
    //比例
    @ApiModelProperty(value = "比例")
    private String proportion;
    
    //职务
    @ApiModelProperty(value = "职务")
    private String holdPost;
    
    //子节点
    @ApiModelProperty(value = "子节点")
    private List<ListMapByCompanyRespVo.Children> children = new ArrayList<>();
    
    @Data
    @ApiModel(description = "子节点")
    public static class Children {
        //关系类型
        @ApiModelProperty(value = "关系类型")
        private String relationType;
    
        //名称
        @ApiModelProperty(value = "名称")
        private String name;
    
        //1个人 2公司
        @ApiModelProperty(value = "1个人 2公司")
        private String type;
    
        //id
        @ApiModelProperty(value = "id")
        private String nameId;
    
        //是否存在下一级 0:存在 1:不存在
        @ApiModelProperty(value = "是否存在下一级 0:存在 1:不存在")
        private String existnextLevel;
    
        //统一社会信用代码
        @ApiModelProperty(value = "统一社会信用代码")
        private String creditCode;
    
        //法定代表人
        @ApiModelProperty(value = "法定代表人")
        private String legalRepresentative;
    
        //注册资本
        @ApiModelProperty(value = "注册资本")
        private String registerCapital;
    
        //成立日期
        @ApiModelProperty(value = "成立日期")
        private Date establishedDate;
    
        //公司标签
        @ApiModelProperty(value = "公司标签")
        private String companyTag;
        
        //比例
        @ApiModelProperty(value = "比例")
        private String proportion;
    
        //职务
        @ApiModelProperty(value = "职务")
        private String holdPost;
    
        //担任法人的公司数
        @ApiModelProperty(value = "担任法人的公司数")
        private String representCompanyNum;
    
        //对外投资的公司数
        @ApiModelProperty(value = "对外投资的公司数")
        private String outboundInvestNum;
    
        //在外任职对应的公司数
        @ApiModelProperty(value = "在外任职对应的公司数")
        private String companiesNum;
    
        //控股企业的个数
        @ApiModelProperty(value = "控股企业的个数")
        private String holdingEnterpriseNum;
        
        //子节点
//        @ApiModelProperty(value = "子节点")
//        private List<ListMapByCompanyRespVo.Children> children = new ArrayList<>();

    }

}
